//
//  operationValue.swift
//  swiftStudy
//
//  Created by unisedu on 16/4/1.
//  Copyright © 2016年 CaoFei. All rights reserved.
//

import UIKit

class operationValue: NSObject {
    //必选类型的变量，普通变量
    var age :Int = 0
    var age2: Int
    age2 = 19
    
    println(age,age2)
    
    //可选类型的变量 ，可选变量或者可空变量
    
    var phone:Int? = 19
    print("\(phone)")
    
    //直接肤质给普通变量是不可以的
    //age = phone
    //phone是nil编译可通过 ，但运行会崩溃
    //age = phone! //只去可选变量的非空数值
    
    //?就是标示变量为可选变量，！就是去取可选变量的非空值
    //！也可以用来表示变量为可选变量
    var a : Int!
    print("a==\(a)")
    //这样就可以直接肤质给普通变量
    age = a //会自动去取他的非空值
    
    //可选变量可以直接当条件使用，而普通变量不可以
    //if age {
    //
    //}
    
    if age == 0 {
    }
    
    if (phone != nil){
    print("可以")
    }else{
    print("不可以")
    }
    
    //?也可用在变量后面 ,表示变量为空就忽略后面的代码，非空就执行后面的代码，是一种智能判断
    //！强制取数值，会报错
    //向下类型转换 （as?）:转换成功就返回正确的数值，不成功就返回空
    var str : String? = "123"
    var a1 = Int(str?)
    print("a1=\(a1)")
    
    
    //总结
    //所有声明可选变量时最好使用？ ，去取可选变量的非空值时就在变量后面加！。
    //调用可选变量的方法时，最好再变量后加上？。因为系统会自动判断，非空就执行，空就忽略

}
